the set
TrainFraction <- 0.70;
MCIPrognosisIDs <- c(MCIconverters$PTID,MCI_No_converters$PTID)
TADPOLECrossMRI <- validBaselineTadpole[MCIPrognosisIDs,]
pander::pander(table(TADPOLECrossMRI$DX))
TADPOLECrossMRI$DX <- NULL
TADPOLECrossMRI$status <- 1*(rownames(TADPOLECrossMRI) %in% MCIconverters$PTID)
table(TADPOLECrossMRI$status)
0 1 373 191
TADPOLECrossMRI$TimeToEvent <- numeric(nrow(TADPOLECrossMRI))
TADPOLECrossMRI[MCIconverters$PTID,"TimeToEvent"] <- MCIconverters$TimeToEvent
TADPOLECrossMRI[MCI_No_converters$PTID,"TimeToEvent"] <- MCI_No_converters$TimeToEvent
TADPOLECrossMRI$TimeToEvent <- TADPOLECrossMRI$TimeToEvent/365.25
TADPOLE_Cases <- subset(TADPOLECrossMRI,status==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,status==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)
TADPOLE_Conv_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_Conv_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in%
rownames(TADPOLE_Conv_TRAIN)),]
pander::pander(table(TADPOLE_Conv_TRAIN$status))
pander::pander(table(TADPOLE_Conv_TEST$status))
pander::pander(c(col=ncol(TADPOLECrossMRI),row=nrow(TADPOLECrossMRI)))
par(op)
Number of
subjects
pander::pander(table(is.na(as.numeric(baselineTadpole$ABETA_UPENNBIOMK9_04_19_17)),baselineTadpole$DX))
| FALSE |
0 |
228 |
1 |
615 |
1 |
2 |
366 |
1 |
| TRUE |
7 |
108 |
0 |
249 |
4 |
0 |
155 |
0 |
pander::pander(table(is.na(as.numeric(baselineTadpole$APOE4)),baselineTadpole$DX))
| FALSE |
1 |
334 |
1 |
861 |
5 |
2 |
520 |
1 |
| TRUE |
6 |
2 |
0 |
3 |
0 |
0 |
1 |
0 |
pander::pander(table(is.na(as.numeric(baselineTadpole$TAU_UPENNBIOMK9_04_19_17)),baselineTadpole$DX))
| FALSE |
0 |
227 |
1 |
614 |
1 |
2 |
364 |
1 |
| TRUE |
7 |
109 |
0 |
250 |
4 |
0 |
157 |
0 |
pander::pander(table(is.na(as.numeric(baselineTadpole$PTAU_UPENNBIOMK9_04_19_17)),baselineTadpole$DX))
| FALSE |
0 |
227 |
1 |
614 |
1 |
2 |
363 |
1 |
| TRUE |
7 |
109 |
0 |
250 |
4 |
0 |
158 |
0 |
pander::pander(table(is.na(as.numeric(baselineTadpole$PTAU_UPENNBIOMK9_04_19_17)),
is.na(as.numeric(baselineTadpole$ABETA_UPENNBIOMK9_04_19_17))))
pander::pander(table(baselineTadpole$DX_bl,baselineTadpole$DX))
| AD |
2 |
335 |
0 |
0 |
5 |
0 |
0 |
0 |
| CN |
2 |
0 |
0 |
0 |
0 |
0 |
415 |
0 |
| EMCI |
2 |
0 |
0 |
306 |
0 |
2 |
0 |
0 |
| LMCI |
1 |
1 |
1 |
558 |
0 |
0 |
0 |
1 |
| SMC |
0 |
0 |
0 |
0 |
0 |
0 |
106 |
0 |
pander::pander(c(col=ncol(baselineTadpole),row=nrow(baselineTadpole)))
pander::pander(c(col=ncol(validBaselineTadpole),row=nrow(validBaselineTadpole)))
pander::pander(c(col=ncol(TADPOLECrossMRI),row=nrow(TADPOLECrossMRI)))
Data Summary
varlist <- colnames(TADPOLECrossMRI);
varlist <- varlist[varlist != "status"]
varlist <- varlist[1:17]
varlist <- cbind(varlist,varlist)
uvar <- uniRankVar(variableList=varlist,
formula="Surv(TimeToEvent,status)~1+AGE",
Outcome="status",
data=TADPOLECrossMRI,
timeOutcome="TimeToEvent")
colnames(uvar$orderframe)
[1] “Name” “parent” “descrip”
[4] “cohortMean” “cohortStd” “cohortKSD”
[7] “cohortKSP” “caseMean” “caseStd”
[10] “caseKSD” “caseKSP” “caseZKSD”
[13] “caseZKSP” “controlMean” “controlStd”
[16] “controlKSD” “controlKSP” “controlZKSD”
[19] “controlZKSP” “Beta” “t.Rawvalue”
[22] “t.Zvalue” “wilcox.Zvalue” “ZGLM”
[25] “zNRI” “zIDI” “ROCAUC”
[28] “cStatCorr” “NRI” “IDI”
[31] “NeRI” “kendall.r” “kendall.p”
[34] “BinRes.p” “TstudentRes.p” “WilcoxRes.p”
[37] “FRes.p” “caseN_Z_Low_Tail” “caseN_Z_Hi_Tail”
[40] “controlN_Z_Low_Tail” “controlN_Z_Hi_Tail” “Sensitivity”
[43] “Specificity”
uninames <- c("caseMean","caseStd","controlMean","controlStd","Beta","ZGLM","t.Rawvalue")
pander::pander(uvar$orderframe[,uninames])
| ADAS13 |
20.87 |
6.22 |
13.70 |
5.79 |
0.14787 |
13.512 |
-13.26 |
| RAVLT_immediate |
28.59 |
7.20 |
37.69 |
10.71 |
-0.09474 |
-10.170 |
11.95 |
| ADAS11 |
12.93 |
4.64 |
8.52 |
3.82 |
0.18301 |
12.714 |
-11.31 |
| ABETA |
724.01 |
325.90 |
1154.23 |
580.01 |
-0.00186 |
-8.306 |
11.27 |
| FAQ |
5.24 |
4.68 |
1.99 |
3.19 |
0.13666 |
10.898 |
-8.64 |
| WholeBrain |
868.01 |
20.44 |
884.40 |
21.25 |
-0.03023 |
-8.227 |
8.89 |
| RAVLT_perc_forgetting |
76.12 |
29.11 |
52.82 |
30.46 |
0.02238 |
8.259 |
-8.85 |
| PTAU |
34.33 |
15.10 |
24.27 |
13.15 |
0.03356 |
8.321 |
-7.82 |
| RAVLT_learning |
3.07 |
2.31 |
4.80 |
2.53 |
-0.25149 |
-7.649 |
8.16 |
| TAU |
342.46 |
133.00 |
256.44 |
117.93 |
0.00367 |
7.938 |
-7.55 |
| MMSE |
26.96 |
1.79 |
28.11 |
1.69 |
-0.29581 |
-7.470 |
7.37 |
| APOE4 |
67.00 |
124.00 |
218.00 |
155.00 |
0.97645 |
6.281 |
NA |
| Ventricles |
296.33 |
46.40 |
280.03 |
49.43 |
0.00642 |
3.958 |
-3.86 |
| RAVLT_forgetting |
5.08 |
2.27 |
4.52 |
2.43 |
0.08752 |
2.887 |
-2.73 |
| ICV |
115.65 |
4.38 |
115.15 |
3.95 |
0.01548 |
0.847 |
-1.34 |
| Gender |
119.00 |
72.00 |
217.00 |
156.00 |
-0.05101 |
-0.338 |
NA |
| AGE |
73.53 |
7.07 |
71.93 |
7.65 |
0.02660 |
2.704 |
-2.47 |
Cross Validation
all Features
cvBSWiMSRaw <- randomCV(TADPOLECrossMRI,
Surv(TimeToEvent,status)~.,
fittingFunction= BSWiMS.model,
classSamplingType = "Ba",
trainFraction = 0.75,
repetitions = 50,
loops=1,
)
.-.-.-.–.-.-.–.-.-.-10 Tested: 552 Avg. Selected: 16.4 Min Tests: 1
Max Tests: 10 Mean Tests: 5.036232 . MAD: 1.091455
.-.-.–.-.–.-.-.–.-.-20 Tested: 562 Avg. Selected: 18.7 Min Tests: 1 Max
Tests: 17 Mean Tests: 9.893238 . MAD: 1.068272 .-.-.-.-.-.-.–.–.-.-30
Tested: 564 Avg. Selected: 19.2 Min Tests: 3 Max Tests: 25 Mean Tests:
14.78723 . MAD: 1.041362 .–.-.-.-.-.—.-.-.-.-40 Tested: 564 Avg.
Selected: 18.55 Min Tests: 4 Max Tests: 32 Mean Tests: 19.71631 . MAD:
1.038173 .-.—.-.–.–.—.-.–.–.-50 Tested: 564 Avg. Selected: 18.56 Min
Tests: 6 Max Tests: 39 Mean Tests: 24.64539 . MAD: 1.041094
pander::pander(cbind(cvBSWiMSRaw$featureFrequency[cvBSWiMSRaw$featureFrequency>20]))
| FAQ |
50 |
| RAVLT_immediate |
50 |
| ABETA |
49 |
| ADAS13 |
48 |
| PTAU |
48 |
| TAU |
45 |
| ADAS11 |
44 |
| M_ST24CV |
31 |
| M_ST29SV |
29 |
| APOE4 |
28 |
| RAVLT_perc_forgetting |
22 |
| RD_ST52TS |
21 |
par(op)
survmtest <- cvBSWiMSRaw$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(cvBSWiMSRaw$survMedianTrain[,c(2,3)],"Train: MCI to AD Conversion")

prBin <- predictionStats_binary(survmtest[,c(2,3)],"BSWiMS: MCI to AD Conversion")

allBinROC <- prBin
pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
160 |
89 |
249 |
| Test - |
31 |
284 |
315 |
| Total |
191 |
373 |
564 |
par(op)
ho <- mean(survmtest$Outcome)
timeInterval <- mean(survmtest[survmtest$Outcome==0,"Times"])
pgzero <- ppoisGzero(survmtest$LinearPredictorsMedian,ho)
rsdata <- cbind(survmtest$Outcome,pgzero,survmtest$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="BSWiMS")
[1] 0.3386525 [1] 0.3386525 1.0000000



[1]
1.0079364 0.9638157 0.3942505 3.4912148 13.4967349 25.1387635 0.0000000
[8] 1.0000000


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.4233 |
4.35 |
3.416 |
5.53 |
0.691 |
0.896 |
0.794 |
0.169 |
| @:0.8 |
0.2843 |
6.10 |
4.340 |
8.56 |
0.838 |
0.796 |
0.817 |
0.220 |
| @MAX_BACC |
0.2456 |
7.55 |
5.073 |
11.22 |
0.880 |
0.768 |
0.824 |
0.240 |
| @MAX_RR |
0.0459 |
197.61 |
0.404 |
96599.50 |
1.000 |
0.157 |
0.578 |
0.311 |
| @SEN100 |
0.0459 |
197.61 |
0.404 |
96599.50 |
1.000 |
0.157 |
0.578 |
0.311 |
| p(0.5) |
0.5000 |
3.70 |
2.999 |
4.56 |
0.597 |
0.923 |
0.760 |
0.131 |
pander::pander(riskAnalysis$c.index)
C Index: 0.845
Dxy: 0.691
S.D.: 0.025
n: 564
missing: 0
uncensored: 191
Relevant Pairs: 142910
Concordant: 120806
Uncertain: 174472
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.897
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 285.397124
on 2 degrees of freedom, p = 0.000000
| class=0 |
313 |
31 |
127.6 |
73.17 |
227.77 |
| class=1 |
69 |
28 |
22.2 |
1.53 |
1.74 |
| class=2 |
182 |
132 |
41.2 |
200.27 |
264.37 |
Cross Validation
Cog Features
survCol <- c("TimeToEvent","status")
OnlyCogTest <- c("ADAS11",
"ADAS13",
"MMSE",
"RAVLT_immediate",
"RAVLT_learning",
"RAVLT_forgetting",
"RAVLT_perc_forgetting",
"FAQ")
cvBSWiMSGog <- randomCV(TADPOLECrossMRI[,c(survCol,OnlyCogTest)],
Surv(TimeToEvent,status)~.,
fittingFunction= BSWiMS.model,
trainSampleSets= cvBSWiMSRaw$trainSamplesSets,
loops=1,
)
.-.-.-.-.-..-..-.-10 Tested: 552 Avg. Selected: 5.4 Min Tests: 1 Max
Tests: 10 Mean Tests: 5.036232 . MAD: 0.953651 ..-.-.-..-.–.-.-.–20
Tested: 562 Avg. Selected: 5.1 Min Tests: 1 Max Tests: 17 Mean Tests:
9.893238 . MAD: 0.9726915 .-.-.-..–.-..-.-.–30 Tested: 564 Avg.
Selected: 5.033333 Min Tests: 3 Max Tests: 25 Mean Tests: 14.78723 .
MAD: 0.9744807 .-.–.-.-..–.-..-.-40 Tested: 564 Avg. Selected: 4.95 Min
Tests: 4 Max Tests: 32 Mean Tests: 19.71631 . MAD: 0.9693289
..–.-.–.–.–.–.-..50 Tested: 564 Avg. Selected: 4.94 Min Tests: 6 Max
Tests: 39 Mean Tests: 24.64539 . MAD: 0.9632637
pander::pander(cbind(cvBSWiMSGog$featureFrequency[cvBSWiMSGog$featureFrequency>20]))
| ADAS13 |
50 |
| FAQ |
50 |
| RAVLT_immediate |
46 |
| RAVLT_perc_forgetting |
30 |
| RAVLT_forgetting |
23 |
| ADAS11 |
22 |
par(op)
survmtest <- cvBSWiMSGog$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(cvBSWiMSGog$survMedianTrain[,c(2,3)],"Train: MCI to AD Conversion")

prBin <- predictionStats_binary(survmtest[,c(2,3)],"Cognitive: MCI to AD Conversion")

allBinCog <- prBin
pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
145 |
84 |
229 |
| Test - |
46 |
289 |
335 |
| Total |
191 |
373 |
564 |
par(op)
ho <- mean(survmtest$Outcome)
timeInterval <- mean(survmtest[survmtest$Outcome==0,"Times"])
pgzero <- ppoisGzero(survmtest$LinearPredictorsMedian,ho)
rsdata <- cbind(survmtest$Outcome,pgzero,survmtest$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="Cognitive")
[1] 0.3386525 [1] 0.3386525 1.0000000



[1]
1.0409362 0.9653607 0.3942505 3.4912148 12.9204575 22.3903077 0.0000000
[8] 1.0000000


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.4162 |
3.62 |
2.910 |
4.51 |
0.623 |
0.8947 |
0.759 |
0.149 |
| @:0.8 |
0.2767 |
4.50 |
3.375 |
5.99 |
0.775 |
0.7956 |
0.785 |
0.202 |
| @MAX_BACC |
0.2638 |
4.91 |
3.617 |
6.67 |
0.801 |
0.7848 |
0.793 |
0.212 |
| @MAX_RR |
0.0564 |
20.08 |
2.882 |
139.88 |
0.995 |
0.1562 |
0.575 |
0.303 |
| @SEN100 |
0.0396 |
110.27 |
0.227 |
53638.34 |
1.000 |
0.0912 |
0.546 |
0.314 |
| p(0.5) |
0.5011 |
3.12 |
2.582 |
3.76 |
0.487 |
0.9367 |
0.712 |
0.106 |
pander::pander(riskAnalysis$c.index)
C Index: 0.828
Dxy: 0.656
S.D.: 0.0273
n: 564
missing: 0
uncensored: 191
Relevant Pairs: 142910
Concordant: 118346
Uncertain: 174472
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.86
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 247.799027
on 2 degrees of freedom, p = 0.000000
| class=0 |
327 |
43 |
129.9 |
58.12 |
187.63 |
| class=1 |
69 |
29 |
23.9 |
1.11 |
1.27 |
| class=2 |
168 |
119 |
37.2 |
179.43 |
230.65 |
Cross Validation
Fluid Features
OnlyFluid <- c("ABETA","TAU","PTAU","APOE4")
cvBSWiMSFluid <- randomCV(TADPOLECrossMRI[,c(survCol,OnlyFluid)],
Surv(TimeToEvent,status)~.,
fittingFunction= BSWiMS.model,
trainSampleSets= cvBSWiMSRaw$trainSamplesSets,
loops=1,
)
……….10 Tested: 552 Avg. Selected: 3.3 Min Tests: 1 Max Tests: 10 Mean
Tests: 5.036232 . MAD: 0.725791 .-.-..-….-..20 Tested: 562 Avg.
Selected: 3.05 Min Tests: 1 Max Tests: 17 Mean Tests: 9.893238 . MAD:
0.7076415 …-…….30 Tested: 564 Avg. Selected: 3.133333 Min Tests: 3 Max
Tests: 25 Mean Tests: 14.78723 . MAD: 0.7051373 …..-.-….40 Tested: 564
Avg. Selected: 3.2 Min Tests: 4 Max Tests: 32 Mean Tests: 19.71631 .
MAD: 0.7058679 ……….50 Tested: 564 Avg. Selected: 3.26 Min Tests: 6 Max
Tests: 39 Mean Tests: 24.64539 . MAD: 0.7084522
pander::pander(cbind(cvBSWiMSFluid$featureFrequency[cvBSWiMSFluid$featureFrequency>20]))
par(op)
survmtest <- cvBSWiMSFluid$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(cvBSWiMSFluid$survMedianTrain[,c(2,3)],"Train: MCI to AD Conversion")

prBin <- predictionStats_binary(survmtest[,c(2,3)],"CSF + Apoe: MCI to AD Conversion")

allBinFluid <- prBin
pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
161 |
154 |
315 |
| Test - |
30 |
219 |
249 |
| Total |
191 |
373 |
564 |
par(op)
ho <- mean(survmtest$Outcome)
timeInterval <- mean(survmtest[survmtest$Outcome==0,"Times"])
pgzero <- ppoisGzero(survmtest$LinearPredictorsMedian,ho)
rsdata <- cbind(survmtest$Outcome,pgzero,survmtest$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="CSF + Apoe")
[1] 0.3386525 [1] 0.3386525 1.0000000



[1]
1.1362325 0.9646085 0.3942505 3.4912148 13.2010159 11.8572975 0.0000000
[8] 1.0000000


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.4552 |
2.32 |
1.9123 |
2.81 |
0.403 |
0.8938 |
0.648 |
0.0713 |
| @:0.8 |
0.3811 |
2.78 |
2.2142 |
3.48 |
0.623 |
0.7945 |
0.709 |
0.1215 |
| @MAX_BACC |
0.3481 |
3.49 |
2.6731 |
4.56 |
0.738 |
0.7489 |
0.744 |
0.1525 |
| @MAX_RR |
0.0732 |
16.88 |
2.4321 |
117.19 |
0.995 |
0.1329 |
0.564 |
0.2908 |
| @SEN100 |
0.0430 |
35.06 |
0.0739 |
16646.28 |
1.000 |
0.0301 |
0.515 |
0.3097 |
| p(0.5) |
0.4990 |
2.01 |
1.6415 |
2.47 |
0.241 |
0.9340 |
0.587 |
0.0356 |
pander::pander(riskAnalysis$c.index)
C Index: 0.73
Dxy: 0.461
S.D.: 0.0358
n: 564
missing: 0
uncensored: 191
Relevant Pairs: 142910
Concordant: 104366
Uncertain: 174472
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.794
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 99.231263
on 2 degrees of freedom, p = 0.000000
| class=0 |
363 |
72 |
132.0 |
27.30 |
90.9 |
| class=1 |
80 |
42 |
26.3 |
9.42 |
11.1 |
| class=2 |
121 |
77 |
32.7 |
60.06 |
73.6 |
Cross Validation
MRI + APOE4 Features
allNames <- colnames(TADPOLECrossMRI)
MRInames <- allNames[!(allNames %in% OnlyFluid | allNames %in% OnlyCogTest)]
cvBSWiMSMRI <- randomCV(TADPOLECrossMRI[,c(MRInames,"APOE4")],
Surv(TimeToEvent,status)~.,
fittingFunction= BSWiMS.model,
trainSampleSets= cvBSWiMSRaw$trainSamplesSets,
loops=1,
)
.–.—..-.-.-.–..-.-10 Tested: 552 Avg. Selected: 19.2 Min Tests: 1 Max
Tests: 10 Mean Tests: 5.036232 . MAD: 0.6937982 .-.-..–.-.–.-.—.——-.—-20
Tested: 562 Avg. Selected: 21.7 Min Tests: 1 Max Tests: 17 Mean Tests:
9.893238 . MAD: 0.6903093 .——.-..-..-.–.–..-30 Tested: 564 Avg.
Selected: 22.36667 Min Tests: 3 Max Tests: 25 Mean Tests: 14.78723 .
MAD: 0.6936149 .—-.——-.–.—..—..–..40 Tested: 564 Avg. Selected: 23.475
Min Tests: 4 Max Tests: 32 Mean Tests: 19.71631 . MAD: 0.692957
.—-..–.-.—.-.-..—–.–50 Tested: 564 Avg. Selected: 22.82 Min Tests: 6 Max
Tests: 39 Mean Tests: 24.64539 . MAD: 0.6952957
pander::pander(cbind(cvBSWiMSMRI$featureFrequency[cvBSWiMSMRI$featureFrequency>20]))
| APOE4 |
50 |
| M_ST29SV |
48 |
| M_ST12SV |
43 |
| M_ST40CV |
43 |
| M_ST24CV |
42 |
| M_ST24TA |
38 |
| RD_ST31TA |
38 |
| M_ST13TA |
35 |
| RD_ST52TS |
33 |
| M_ST31CV |
29 |
| M_ST52TA |
28 |
| M_ST13CV |
22 |
| M_ST40SA |
22 |
| M_ST26CV |
21 |
| M_ST56SA |
21 |
par(op)
survmtest <- cvBSWiMSMRI$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(cvBSWiMSMRI$survMedianTrain[,c(2,3)],"Train: MCI to AD Conversion")

prBin <- predictionStats_binary(survmtest[,c(2,3)],"MRI + APOE4: MCI to AD Conversion")

allBinMRI <- prBin
pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
154 |
136 |
290 |
| Test - |
37 |
237 |
274 |
| Total |
191 |
373 |
564 |
par(op)
ho <- mean(survmtest$Outcome)
timeInterval <- mean(survmtest[survmtest$Outcome==0,"Times"])
pgzero <- ppoisGzero(survmtest$LinearPredictorsMedian,ho)
rsdata <- cbind(survmtest$Outcome,pgzero,survmtest$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="MRI + APOE4")
[1] 0.3386525 [1] 0.3386525 1.0000000



[1]
1.0054812 0.9592568 0.3942505 3.4912148 15.1972127 16.2401951 0.0000000
[8] 1.0000000


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.4981 |
2.65 |
2.18 |
3.22 |
0.471 |
0.896 |
0.684 |
0.0769 |
| @:0.8 |
0.3817 |
2.90 |
2.31 |
3.65 |
0.639 |
0.796 |
0.717 |
0.1244 |
| @MAX_BACC |
0.2554 |
5.68 |
3.79 |
8.53 |
0.885 |
0.633 |
0.759 |
0.2084 |
| @MAX_RR |
0.1199 |
8.13 |
2.10 |
31.46 |
0.990 |
0.125 |
0.557 |
0.2552 |
| @SEN100 |
0.0709 |
1.00 |
0.00 |
0.00 |
1.000 |
0.000 |
0.500 |
0.2882 |
| p(0.5) |
0.5000 |
2.69 |
2.21 |
3.26 |
0.471 |
0.900 |
0.686 |
0.0798 |
pander::pander(riskAnalysis$c.index)
C Index: 0.762
Dxy: 0.524
S.D.: 0.0346
n: 564
missing: 0
uncensored: 191
Relevant Pairs: 142910
Concordant: 108910
Uncertain: 174472
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.811
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 148.436216
on 2 degrees of freedom, p = 0.000000
| class=0 |
358 |
69 |
132.7 |
30.61 |
103.874 |
| class=1 |
69 |
32 |
27.4 |
0.76 |
0.927 |
| class=2 |
137 |
90 |
30.8 |
113.61 |
138.515 |
Cross Validation
MRI and Cog Features
cvBSWiMSMRICog <- randomCV(TADPOLECrossMRI[,c(MRInames,OnlyCogTest)],
Surv(TimeToEvent,status)~.,
fittingFunction= BSWiMS.model,
trainSampleSets= cvBSWiMSRaw$trainSamplesSets,
loops=1,
)
.—.-.-.-.-.-.–.-.-.-10 Tested: 552 Avg. Selected: 15.1 Min Tests: 1
Max Tests: 10 Mean Tests: 5.036232 . MAD: 1.048966
.-.–.–.-.–.-.—.–.-.–20 Tested: 562 Avg. Selected: 14.9 Min Tests: 1 Max
Tests: 17 Mean Tests: 9.893238 . MAD: 1.049335 .–.—.—-.–.-.–.-.-.-.–30
Tested: 564 Avg. Selected: 15.2 Min Tests: 3 Max Tests: 25 Mean Tests:
14.78723 . MAD: 1.035853 .-.-.-.-.-.–.-.–.-.–40 Tested: 564 Avg.
Selected: 15.35 Min Tests: 4 Max Tests: 32 Mean Tests: 19.71631 . MAD:
1.023489 .–.-.-.-.–.–.–.-.–.–50 Tested: 564 Avg. Selected: 15.18 Min
Tests: 6 Max Tests: 39 Mean Tests: 24.64539 . MAD: 1.011273
pander::pander(cbind(cvBSWiMSMRICog$featureFrequency[cvBSWiMSMRICog$featureFrequency>20]))
| FAQ |
50 |
| RAVLT_immediate |
50 |
| ADAS13 |
48 |
| ADAS11 |
41 |
| RAVLT_perc_forgetting |
36 |
| M_ST29SV |
31 |
| M_ST14TS |
23 |
| RAVLT_learning |
22 |
par(op)
survmtest <- cvBSWiMSMRICog$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(cvBSWiMSMRICog$survMedianTrain[,c(2,3)],"Train: MCI to AD Conversion")

prBin <- predictionStats_binary(survmtest[,c(2,3)],"MRI + Cog: MCI to AD Conversion")

allBinMRICog <- prBin
pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
152 |
90 |
242 |
| Test - |
39 |
283 |
322 |
| Total |
191 |
373 |
564 |
par(op)
ho <- mean(survmtest$Outcome)
timeInterval <- mean(survmtest[survmtest$Outcome==0,"Times"])
pgzero <- ppoisGzero(survmtest$LinearPredictorsMedian,ho)
rsdata <- cbind(survmtest$Outcome,pgzero,survmtest$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="MRI + Cog")
[1] 0.3386525 [1] 0.3386525 1.0000000



[1]
1.0285138 0.9635129 0.3942505 3.4912148 13.6096798 23.4405342 0.0000000
[8] 1.0000000


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.4176 |
3.90 |
3.110 |
4.89 |
0.649 |
0.898 |
0.774 |
0.156 |
| @:0.8 |
0.2881 |
4.94 |
3.650 |
6.67 |
0.796 |
0.797 |
0.796 |
0.205 |
| @MAX_BACC |
0.3320 |
4.95 |
3.741 |
6.54 |
0.764 |
0.851 |
0.808 |
0.198 |
| @MAX_RR |
0.0695 |
37.95 |
5.398 |
266.84 |
0.995 |
0.275 |
0.635 |
0.300 |
| @SEN100 |
0.0292 |
107.45 |
0.221 |
52251.14 |
1.000 |
0.089 |
0.545 |
0.320 |
| p(0.5) |
0.4993 |
3.37 |
2.772 |
4.09 |
0.529 |
0.937 |
0.733 |
0.121 |
pander::pander(riskAnalysis$c.index)
C Index: 0.832
Dxy: 0.663
S.D.: 0.0268
n: 564
missing: 0
uncensored: 191
Relevant Pairs: 142910
Concordant: 118834
Uncertain: 174472
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.876
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 257.364216
on 2 degrees of freedom, p = 0.000000
| class=0 |
322 |
39 |
129.0 |
62.79 |
201.3 |
| class=1 |
68 |
28 |
22.7 |
1.22 |
1.4 |
| class=2 |
174 |
124 |
39.3 |
182.73 |
238.6 |
Comparing ROC
AUC
ROCAUC <- rbind(All=allBinROC$aucs,
Cog=allBinCog$aucs,
CSF=allBinFluid$aucs,
MRI=allBinMRI$aucs,
COG_MRI=allBinMRICog$aucs)
ROCAUC <- ROCAUC[order(-ROCAUC[,1]),]
pander::pander(ROCAUC)
| All |
0.874 |
0.845 |
0.903 |
| COG_MRI |
0.853 |
0.821 |
0.885 |
| Cog |
0.839 |
0.805 |
0.873 |
| MRI |
0.791 |
0.752 |
0.829 |
| CSF |
0.782 |
0.742 |
0.821 |
pander::pander(roc.test(allBinROC$ROC.analysis$roc.predictor,allBinMRICog$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinROC$ROC.analysis$roc.predictor and
allBinMRICog$ROC.analysis$roc.predictor
| 3.02 |
0.00249 * * |
two.sided |
0.874 |
0.853 |
pander::pander(roc.test(allBinMRICog$ROC.analysis$roc.predictor,allBinCog$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinMRICog$ROC.analysis$roc.predictor and
allBinCog$ROC.analysis$roc.predictor
| 1.87 |
0.0612 |
two.sided |
0.853 |
0.839 |
pander::pander(roc.test(allBinMRICog$ROC.analysis$roc.predictor,allBinMRI$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinMRICog$ROC.analysis$roc.predictor and
allBinMRI$ROC.analysis$roc.predictor
| 3.67 |
0.00024 * * * |
two.sided |
0.853 |
0.791 |
pander::pander(roc.test(allBinMRICog$ROC.analysis$roc.predictor,allBinFluid$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinMRICog$ROC.analysis$roc.predictor and
allBinFluid$ROC.analysis$roc.predictor
| 3.05 |
0.00232 * * |
two.sided |
0.853 |
0.782 |
pander::pander(roc.test(allBinCog$ROC.analysis$roc.predictor,allBinMRI$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinCog$ROC.analysis$roc.predictor and
allBinMRI$ROC.analysis$roc.predictor
| 2.22 |
0.0263 * |
two.sided |
0.839 |
0.791 |
pander::pander(roc.test(allBinMRI$ROC.analysis$roc.predictor,allBinFluid$ROC.analysis$roc.predictor))
DeLong’s test for two correlated ROC curves:
allBinMRI$ROC.analysis$roc.predictor and
allBinFluid$ROC.analysis$roc.predictor
| 0.386 |
0.7 |
two.sided |
0.791 |
0.782 |
survmtest <- cvBSWiMSRaw$survMedianTest
survmtest <- survmtest[complete.cases(survmtest),]
prBin <- predictionStats_binary(survmtest[,c(2,3)],"MCI to AD Conversion")
par(new=TRUE)
plot(allBinMRICog$ROC.analysis$roc.predictor,col="red")
par(new=TRUE)
plot(allBinCog$ROC.analysis$roc.predictor,col="blue")
par(new=TRUE)
plot(allBinMRI$ROC.analysis$roc.predictor,col="green")
par(new=TRUE)
plot(allBinFluid$ROC.analysis$roc.predictor,col="cyan")
legend("bottomright",
legend=c("All","MRI+COG","COG","MRI","CSF"),
lty=1,
col=c("black","red","blue","green","cyan"))

Learning
TADPOLE_Conv_TRAINNorm <- FRESAScale(TADPOLE_Conv_TRAIN)
TADPOLE_Conv_TRAINNorm <- TADPOLE_Conv_TRAINNorm$scaledData
TADPOLE_Conv_TRAINNorm$TimeToEvent <- TADPOLE_Conv_TRAIN$TimeToEvent
TADPOLE_Conv_TESTNorm <- FRESAScale(TADPOLE_Conv_TEST,TADPOLE_Conv_TRAIN)$scaledData
TADPOLE_Conv_TESTNorm$TimeToEvent <- TADPOLE_Conv_TEST$TimeToEvent
bConvml <- BSWiMS.model(Surv(TimeToEvent,status)~1,TADPOLE_Conv_TRAINNorm,loops=20,NumberofRepeats = 20)
[++-+-++-+-++-++-++-+++-+++-+-++-+–++-++-+-++–++-++-+–++-]……
#bConvml <- BSWiMS.model(Surv(TimeToEvent,status)~1,TADPOLE_Conv_TRAIN,loops=20,NumberofRepeats = 20)
pander::pander(bConvml$bagging$Jaccard.SM)
0.286
fs <- bConvml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)

sm <- summary(bConvml)
summary(TADPOLE_Conv_TRAINNorm$M_ST39CV)
Min. 1st Qu. Median Mean 3rd Qu. Max. -2.7659 -0.5863 0.2002 0.0000
0.6914 2.4492
pander::pander(bConvml$formula.list)
Surv(TimeToEvent, status) ~ 1 + FAQ + RAVLT_immediate + ADAS13 +
ABETA + PTAU + M_ST13TA + M_ST56SA + RD_ST34CV + RD_ST49SA,
Surv(TimeToEvent, status) ~ 1 + ADAS11 + TAU + RD_ST34SA + M_ST29SV
+ M_ST56CV + APOE4, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + ADAS13 + FAQ + RAVLT_immediate + ABETA + PTAU + M_ST56SA +
M_ST13TA + RD_ST49SA + RD_ST34CV, =-=End=-=,
Surv(TimeToEvent, status) ~ 1 + RAVLT_immediate + FAQ + ADAS13 +
ABETA + PTAU + M_ST56CV, Surv(TimeToEvent, status) ~ 1 + ADAS11
+ TAU + M_ST29SV + RD_ST34SA + M_ST14TS + M_ST11SV + M_ST56SA +
APOE4, =-=End=-=, Surv(TimeToEvent, status) ~ 1 + FAQ
+ RAVLT_immediate + ABETA + PTAU + M_ST56SA + M_ST13TA + RD_ST34CV,
=-=End=-=, Surv(TimeToEvent, status) ~ 1 + ADAS13 + FAQ +
RAVLT_immediate + ABETA + PTAU + M_ST59CV + M_ST11SV + M_ST56SA +
RD_ST49SA, Surv(TimeToEvent, status) ~ 1 + ADAS11 + TAU +
M_ST29SV + M_ST56CV + APOE4, =-=End=-=,
Surv(TimeToEvent, status) ~ 1 + RAVLT_immediate + ADAS13 + FAQ +
ABETA + M_ST56SA + M_ST13TA + PTAU, Surv(TimeToEvent, status) ~
1 + ADAS11 + TAU + M_ST11SV + M_ST56CV + M_ST24CV + M_ST59SA + RD_ST49SA
+ APOE4 + RD_ST34SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + FAQ + ADAS13 + RAVLT_immediate + ABETA + TAU + M_ST39CV +
M_ST56SA + RD_ST34CV + M_ST13CV, Surv(TimeToEvent, status) ~ 1
+ ADAS11 + PTAU + RAVLT_perc_forgetting + M_ST29SV + M_ST11SV + M_ST14TS
+ M_ST59SA + RD_ST49SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + ADAS13 + FAQ + RAVLT_immediate + M_ST56SA + ABETA + TAU +
M_ST13CV + M_ST39SA, Surv(TimeToEvent, status) ~ 1 + ADAS11 +
APOE4 + M_ST56CV + PTAU + M_ST12SV, Surv(TimeToEvent, status) ~
1 + RAVLT_perc_forgetting + M_ST29SV + M_ST13TA + MMSE + RD_ST34SA +
M_ST14TS + M_ST59SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + RAVLT_immediate + FAQ + ADAS13 + ABETA + M_ST56CV +
PTAU, Surv(TimeToEvent, status) ~ 1 + ADAS11 + TAU + M_ST29SV +
M_ST11SV + M_ST14TS + M_ST56SA + RD_ST34SA, Surv(TimeToEvent,
status) ~ 1 + RAVLT_perc_forgetting + MMSE + M_ST12SV + APOE4 +
M_ST13TA, =-=End=-=, Surv(TimeToEvent, status) ~ 1 +
FAQ + RAVLT_immediate + ABETA + M_ST56SA + M_ST13TA + RD_ST15TS + TAU +
RD_ST34CV, =-=End=-=, Surv(TimeToEvent, status) ~ 1 +
FAQ + RAVLT_immediate + ADAS13 + ABETA + PTAU + M_ST56SA + M_ST13TA +
RD_ST34CV + RD_ST49SA, Surv(TimeToEvent, status) ~ 1 + ADAS11 +
TAU + RAVLT_perc_forgetting + M_ST56CV + APOE4 + M_ST29SV +
M_ST14TS, =-=End=-=, Surv(TimeToEvent, status) ~ 1 +
ADAS13 + FAQ + RAVLT_immediate + M_ST56SA + ABETA + M_ST13TA + PTAU +
RD_ST34CV + RD_ST49SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + FAQ + ADAS13 + RAVLT_immediate + M_ST56SA + PTAU + ABETA +
M_ST13TA + RD_ST49SA + RD_ST34CV, Surv(TimeToEvent, status) ~ 1
+ ADAS11 + TAU + M_ST56CV + M_ST14TS + M_ST29SV + APOE4,
=-=End=-=, Surv(TimeToEvent, status) ~ 1 + FAQ + ADAS13 +
RAVLT_immediate + ABETA + M_ST56SA + M_ST13TA + PTAU + RD_ST34CV +
RD_ST49SA, Surv(TimeToEvent, status) ~ 1 + ADAS11 + TAU +
RD_ST34SA + M_ST56CV + APOE4 + RAVLT_perc_forgetting + M_ST29SV +
M_ST14TS, =-=End=-=, Surv(TimeToEvent, status) ~ 1 +
FAQ + ADAS13 + RAVLT_immediate + ABETA + M_ST56SA + PTAU + M_ST13TA +
RD_ST34CV + RD_ST49SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + FAQ + RAVLT_immediate + ABETA + TAU + M_ST11SV + M_ST59SA
+ RD_ST15TS + M_ST24CV, Surv(TimeToEvent, status) ~ 1 + ADAS13
+ PTAU + M_ST56SA + M_ST29SV + M_ST26CV, =-=End=-=,
Surv(TimeToEvent, status) ~ 1 + ADAS13 + RAVLT_immediate + FAQ +
M_ST56SA + M_ST13TA + ABETA + PTAU + RD_ST34CV + RD_ST49SA,
Surv(TimeToEvent, status) ~ 1 + ADAS11 + TAU + RD_ST34SA + M_ST11SV
+ M_ST29SV + APOE4 + M_ST59SA, =-=End=-=,
Surv(TimeToEvent, status) ~ 1 + FAQ + ADAS13 + RAVLT_immediate +
ABETA + PTAU + M_ST56CV + M_ST13CV, Surv(TimeToEvent, status) ~
1 + ADAS11 + TAU + M_ST29SV + M_ST11SV + M_ST56SA + APOE4 +
M_ST14TS, =-=End=-=, Surv(TimeToEvent, status) ~ 1 +
RAVLT_immediate + FAQ + ADAS13 + ABETA + TAU + M_ST56SA + M_ST13TA +
RD_ST34CV + RD_ST49SA, =-=End=-=, Surv(TimeToEvent,
status) ~ 1 + FAQ + ADAS13 + RAVLT_immediate + M_ST56SA + ABETA + PTAU +
M_ST13TA + RD_ST34CV + RD_ST49SA, Surv(TimeToEvent, status) ~ 1
+ ADAS11 + TAU + M_ST56CV + M_ST11SV + APOE4 + M_ST24CV + M_ST59SA
and =-=End=-=
pander::pander(bConvml$bagging$predfit$coef)
| 0.061 |
5.89e-17 |
0.35 |
0.136 |
-0.262 |
0.0422 |
0.159 |
0.0733 |
0.27 |
-0.021 |
0.392 |
cnames <- names(bConvml$bagging$bagged.model$coefficients)
pander::pander(cbind(
bConvml$bagging$bagged.model$coefficients,
bConvml$bagging$bagged.model$baggingAnalysis$coefficients[cnames],
bConvml$bagging$bagged.model$baggingAnalysis$wts[cnames],
bConvml$bagging$bagged.model$baggingAnalysis$avgLogPvalues[cnames],
bConvml$bagging$bagged.model$baggingAnalysis$RelativeFrequency[cnames])
)
| (Intercept) |
0.00e+00 |
NA |
NA |
NA |
NA |
| FAQ |
2.46e-01 |
0.4578 |
3.98e-02 |
4.77 |
1.00 |
| RAVLT_immediate |
-3.44e-01 |
-0.6401 |
3.98e-02 |
5.57 |
1.00 |
| ABETA |
-2.08e-01 |
-0.3869 |
3.98e-02 |
3.35 |
1.00 |
| M_ST56SA |
-2.16e-01 |
-0.3667 |
4.38e-02 |
5.06 |
1.00 |
| ADAS13 |
1.24e-01 |
0.4061 |
2.52e-02 |
2.60 |
0.90 |
| PTAU |
1.38e-02 |
0.3358 |
3.39e-03 |
3.80 |
0.90 |
| TAU |
3.14e-01 |
0.3815 |
7.64e-02 |
4.80 |
0.80 |
| M_ST13TA |
-2.04e-01 |
-0.4165 |
4.85e-02 |
8.36 |
0.75 |
| ADAS11 |
1.91e-01 |
0.5819 |
3.74e-02 |
8.11 |
0.65 |
| RD_ST34CV |
-8.86e-02 |
-0.2497 |
4.05e-02 |
4.03 |
0.65 |
| RD_ST49SA |
-8.66e-02 |
-0.2180 |
4.54e-02 |
2.94 |
0.65 |
| M_ST29SV |
-1.17e-01 |
-0.4415 |
3.27e-02 |
3.56 |
0.60 |
| APOE4 |
3.15e-01 |
0.7243 |
5.38e-02 |
3.46 |
0.60 |
| M_ST56CV |
-2.26e-02 |
-0.2461 |
1.24e-02 |
4.59 |
0.55 |
| M_ST11SV |
-1.56e-01 |
-0.3062 |
8.40e-02 |
3.89 |
0.45 |
| M_ST14TS |
5.94e-02 |
0.2248 |
4.90e-02 |
3.26 |
0.40 |
| RD_ST34SA |
-1.02e-01 |
-0.2870 |
7.55e-02 |
2.74 |
0.35 |
| M_ST59SA |
-8.52e-02 |
-0.2818 |
7.48e-02 |
3.67 |
0.30 |
| RAVLT_perc_forgetting |
7.07e-02 |
0.5214 |
4.03e-02 |
3.16 |
0.25 |
| M_ST24CV |
-1.02e-01 |
-0.3723 |
1.36e-01 |
3.54 |
0.15 |
| M_ST13CV |
-4.86e-13 |
-0.2404 |
1.00e-12 |
3.33 |
0.15 |
| MMSE |
-3.99e-02 |
-0.2940 |
1.01e-01 |
2.69 |
0.10 |
| M_ST12SV |
-3.66e-02 |
-0.3418 |
7.96e-02 |
3.35 |
0.10 |
| RD_ST15TS |
-5.97e-02 |
-0.2581 |
1.72e-01 |
3.23 |
0.10 |
| M_ST26CV |
-1.95e-13 |
-0.2891 |
1.00e-12 |
2.86 |
0.05 |
| M_ST39CV |
-9.17e-14 |
-0.1361 |
1.00e-12 |
4.20 |
0.05 |
| M_ST59CV |
-1.68e-13 |
-0.2491 |
1.00e-12 |
4.81 |
0.05 |
| M_ST39SA |
-4.15e-14 |
-0.0615 |
1.00e-12 |
3.02 |
0.05 |
pander::pander(sm$coefficients)
| ADAS11 |
1.91e-01 |
1.463 |
1.789 |
2.189 |
0.668 |
0.722 |
0.752 |
0.679 |
0.757 |
0.782 |
0.06175 |
0.539 |
5.96 |
5.24 |
0.025417 |
0.65 |
| M_ST13TA |
-2.04e-01 |
0.572 |
0.659 |
0.760 |
0.657 |
0.742 |
0.766 |
0.668 |
0.766 |
0.794 |
0.04056 |
0.663 |
5.44 |
6.72 |
0.027437 |
0.75 |
| RAVLT_immediate |
-3.44e-01 |
0.400 |
0.527 |
0.695 |
0.673 |
0.755 |
0.769 |
0.718 |
0.787 |
0.800 |
0.04894 |
0.628 |
5.36 |
6.54 |
0.013008 |
1.00 |
| TAU |
3.14e-01 |
1.224 |
1.465 |
1.753 |
0.655 |
0.748 |
0.762 |
0.638 |
0.782 |
0.793 |
0.03016 |
0.544 |
4.37 |
5.31 |
0.010720 |
0.80 |
| M_ST56SA |
-2.16e-01 |
0.586 |
0.693 |
0.819 |
0.566 |
0.759 |
0.768 |
0.577 |
0.789 |
0.797 |
0.02960 |
0.468 |
4.31 |
4.59 |
0.008198 |
1.00 |
| FAQ |
2.46e-01 |
1.273 |
1.581 |
1.963 |
0.708 |
0.732 |
0.769 |
0.688 |
0.767 |
0.800 |
0.03459 |
0.371 |
4.22 |
3.55 |
0.032788 |
1.00 |
| M_ST59CV |
-1.68e-13 |
0.693 |
0.780 |
0.876 |
0.614 |
0.751 |
0.766 |
0.628 |
0.779 |
0.792 |
0.01627 |
0.307 |
4.16 |
2.92 |
0.013338 |
0.05 |
| M_ST59SA |
-8.52e-02 |
0.645 |
0.754 |
0.883 |
0.546 |
0.749 |
0.749 |
0.554 |
0.783 |
0.782 |
0.02014 |
0.445 |
3.96 |
4.32 |
-0.000775 |
0.30 |
| RD_ST34CV |
-8.86e-02 |
0.683 |
0.779 |
0.888 |
0.520 |
0.759 |
0.777 |
0.542 |
0.786 |
0.806 |
0.01663 |
0.443 |
3.90 |
4.40 |
0.020088 |
0.65 |
| RAVLT_perc_forgetting |
7.07e-02 |
1.224 |
1.684 |
2.319 |
0.652 |
0.728 |
0.738 |
0.673 |
0.750 |
0.762 |
0.03863 |
0.520 |
3.85 |
5.13 |
0.012586 |
0.25 |
| M_ST39CV |
-9.17e-14 |
0.814 |
0.873 |
0.936 |
0.650 |
0.756 |
0.764 |
0.642 |
0.783 |
0.794 |
0.00924 |
0.346 |
3.83 |
3.30 |
0.011278 |
0.05 |
| ABETA |
-2.08e-01 |
0.541 |
0.679 |
0.853 |
0.609 |
0.782 |
0.769 |
0.672 |
0.808 |
0.800 |
0.02112 |
0.430 |
3.76 |
4.56 |
-0.007637 |
1.00 |
| M_ST29SV |
-1.17e-01 |
0.500 |
0.643 |
0.826 |
0.673 |
0.751 |
0.752 |
0.692 |
0.777 |
0.782 |
0.02558 |
0.498 |
3.69 |
4.89 |
0.005547 |
0.60 |
| M_ST11SV |
-1.56e-01 |
0.625 |
0.736 |
0.868 |
0.622 |
0.743 |
0.752 |
0.635 |
0.771 |
0.784 |
0.01769 |
0.375 |
3.66 |
3.60 |
0.013446 |
0.45 |
| M_ST12SV |
-3.66e-02 |
0.581 |
0.711 |
0.869 |
0.673 |
0.721 |
0.739 |
0.679 |
0.739 |
0.762 |
0.02226 |
0.421 |
3.58 |
4.05 |
0.022628 |
0.10 |
| M_ST24CV |
-1.02e-01 |
0.557 |
0.689 |
0.852 |
0.645 |
0.737 |
0.750 |
0.647 |
0.774 |
0.784 |
0.02191 |
0.436 |
3.50 |
4.20 |
0.010169 |
0.15 |
| PTAU |
1.38e-02 |
1.165 |
1.399 |
1.680 |
0.662 |
0.759 |
0.772 |
0.644 |
0.790 |
0.798 |
0.02007 |
0.392 |
3.44 |
3.75 |
0.007735 |
0.90 |
| APOE4 |
3.15e-01 |
1.357 |
2.063 |
3.136 |
0.594 |
0.739 |
0.749 |
0.603 |
0.765 |
0.777 |
0.02337 |
0.409 |
3.41 |
3.94 |
0.011835 |
0.60 |
| RD_ST15TS |
-5.97e-02 |
0.661 |
0.773 |
0.903 |
0.520 |
0.746 |
0.753 |
0.555 |
0.781 |
0.790 |
0.01487 |
0.390 |
3.36 |
3.96 |
0.008388 |
0.10 |
| M_ST13CV |
-4.86e-13 |
0.682 |
0.786 |
0.907 |
0.629 |
0.765 |
0.758 |
0.647 |
0.793 |
0.787 |
0.01359 |
0.364 |
3.28 |
3.52 |
-0.006338 |
0.15 |
| M_ST39SA |
-4.15e-14 |
0.904 |
0.940 |
0.978 |
0.655 |
0.746 |
0.751 |
0.655 |
0.775 |
0.783 |
0.00326 |
0.254 |
3.10 |
2.41 |
0.007519 |
0.05 |
| M_ST14TS |
5.94e-02 |
1.094 |
1.252 |
1.433 |
0.594 |
0.747 |
0.752 |
0.598 |
0.775 |
0.782 |
0.01306 |
0.257 |
3.07 |
2.44 |
0.007519 |
0.40 |
| M_ST26CV |
-1.95e-13 |
0.620 |
0.749 |
0.905 |
0.637 |
0.749 |
0.731 |
0.643 |
0.772 |
0.755 |
0.01495 |
0.406 |
2.99 |
3.89 |
-0.017097 |
0.05 |
| RD_ST49SA |
-8.66e-02 |
0.699 |
0.804 |
0.925 |
0.503 |
0.764 |
0.773 |
0.538 |
0.792 |
0.800 |
0.01102 |
0.258 |
2.95 |
2.53 |
0.007946 |
0.65 |
| RD_ST34SA |
-1.02e-01 |
0.619 |
0.750 |
0.911 |
0.515 |
0.740 |
0.751 |
0.544 |
0.764 |
0.780 |
0.01448 |
0.172 |
2.80 |
1.66 |
0.016271 |
0.35 |
| M_ST56CV |
-2.26e-02 |
0.694 |
0.782 |
0.881 |
0.645 |
0.741 |
0.749 |
0.653 |
0.768 |
0.775 |
0.01087 |
0.262 |
2.79 |
2.48 |
0.007591 |
0.55 |
| MMSE |
-3.99e-02 |
0.610 |
0.745 |
0.911 |
0.685 |
0.721 |
0.738 |
0.672 |
0.743 |
0.762 |
0.01543 |
0.384 |
2.76 |
3.67 |
0.019400 |
0.10 |
| ADAS13 |
1.24e-01 |
1.130 |
1.501 |
1.993 |
0.713 |
0.781 |
0.780 |
0.721 |
0.809 |
0.808 |
0.01274 |
0.203 |
2.44 |
1.92 |
-0.000754 |
0.90 |
pander::pander(bConvml$univariate[bConvml$selectedfeatures,])
| FAQ |
FAQ |
FAQ |
7.57 |
| RAVLT_immediate |
RAVLT_immediate |
RAVLT_immediate |
10.41 |
| ABETA |
ABETA |
ABETA |
8.51 |
| M_ST56SA |
M_ST56SA |
M_ST56SA |
4.71 |
| ADAS13 |
ADAS13 |
ADAS13 |
10.85 |
| PTAU |
PTAU |
PTAU |
5.59 |
| TAU |
TAU |
TAU |
5.29 |
| M_ST13TA |
M_ST13TA |
M_ST13TA |
7.42 |
| ADAS11 |
ADAS11 |
ADAS11 |
9.39 |
| RD_ST34CV |
RD_ST34CV |
RD_ST34CV |
2.53 |
| RD_ST49SA |
RD_ST49SA |
RD_ST49SA |
1.82 |
| M_ST29SV |
M_ST29SV |
M_ST29SV |
8.57 |
| APOE4 |
APOE4 |
APOE4 |
3.97 |
| M_ST56CV |
M_ST56CV |
M_ST56CV |
7.17 |
| M_ST11SV |
M_ST11SV |
M_ST11SV |
5.89 |
| M_ST14TS |
M_ST14TS |
M_ST14TS |
5.15 |
| RD_ST34SA |
RD_ST34SA |
RD_ST34SA |
2.91 |
| M_ST59SA |
M_ST59SA |
M_ST59SA |
3.24 |
| RAVLT_perc_forgetting |
RAVLT_perc_forgetting |
RAVLT_perc_forgetting |
7.08 |
| M_ST24CV |
M_ST24CV |
M_ST24CV |
7.09 |
| M_ST13CV |
M_ST13CV |
M_ST13CV |
6.71 |
| MMSE |
MMSE |
MMSE |
7.13 |
| M_ST12SV |
M_ST12SV |
M_ST12SV |
8.36 |
| RD_ST15TS |
RD_ST15TS |
RD_ST15TS |
2.14 |
| M_ST26CV |
M_ST26CV |
M_ST26CV |
7.12 |
| M_ST39CV |
M_ST39CV |
M_ST39CV |
6.44 |
| M_ST59CV |
M_ST59CV |
M_ST59CV |
6.33 |
| M_ST39SA |
M_ST39SA |
M_ST39SA |
6.67 |
#ptestl <- predict(bConvml,TADPOLE_Conv_TEST,type="lp")
ptestl <- predict(bConvml,TADPOLE_Conv_TESTNorm,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)

#ptestr <- predict(bConvml,TADPOLE_Conv_TEST,type="risk")
ptestr <- predict(bConvml,TADPOLE_Conv_TESTNorm,type="risk")
eventCases <- subset(TADPOLE_Conv_TEST,status==1)
plot(1.0/ptestr[rownames(eventCases)]~eventCases$TimeToEvent)

pander::pander(cor.test(eventCases$TimeToEvent,1.0/ptestr[rownames(eventCases)],method="spearman"))
Spearman’s rank correlation rho:
eventCases$TimeToEvent and
1/ptestr[rownames(eventCases)]
| 18210 |
0.000551 * * * |
two.sided |
0.44 |
perdsurv <- as.data.frame(cbind(Times=TADPOLE_Conv_TEST$TimeToEvent,
Outcome=TADPOLE_Conv_TEST$status,
LinearPredictors=ptestl,
ptestr))
boxplot(perdsurv$LinearPredictors~perdsurv$Outcome)

prSurv <- predictionStats_survival(perdsurv,"BSWiMS: MCI to AD Conversion")


pander::pander(prSurv$CIRisk)
pander::pander(prSurv$CILp)
pander::pander(prSurv$spearmanCI)
prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"BSWiMS: MCI to AD Conversion")

pander::pander(prBin$aucs)
pander::pander(prBin$CM.analysis$tab)
| Test + |
56 |
34 |
90 |
| Test - |
2 |
78 |
80 |
| Total |
58 |
112 |
170 |
par(op)
ho <- mean(TADPOLE_Conv_TRAIN$status)
timeInterval <- mean(TADPOLE_Conv_TRAIN[TADPOLE_Conv_TRAIN$status==0,"TimeToEvent"])
pgzero <- ppoisGzero(perdsurv$LinearPredictors,ho)
rsdata <- cbind(perdsurv$Outcome,pgzero,perdsurv$Times)
riskAnalysis <- RRPlot(rsdata,riskTimeInterval=timeInterval,title="Test")
[1] 0.3411765 [1] 0.3411765 1.0000000



[1]
0.8996088 0.9408211 0.4599589 3.5649262 6.6280369 14.8752056 1.0000000
[8] 0.9534954


pander::pander(riskAnalysis$keyPoints)
| @:0.9 |
0.480 |
4.71 |
2.963 |
7.50e+00 |
0.724 |
0.889 |
0.807 |
0.155 |
| @:0.8 |
0.311 |
10.66 |
4.525 |
2.51e+01 |
0.914 |
0.781 |
0.847 |
0.235 |
| @MAX_BACC |
0.285 |
46.28 |
6.586 |
3.25e+02 |
0.983 |
0.738 |
0.860 |
0.256 |
| @MAX_RR |
0.186 |
300.69 |
0.614 |
1.47e+05 |
1.000 |
0.571 |
0.786 |
0.271 |
| @SEN100 |
0.186 |
300.69 |
0.614 |
1.47e+05 |
1.000 |
0.571 |
0.786 |
0.271 |
| p(0.5) |
0.500 |
4.84 |
3.045 |
7.69e+00 |
0.724 |
0.899 |
0.812 |
0.153 |
pander::pander(riskAnalysis$c.index)
C Index: 0.874
Dxy: 0.747
S.D.: 0.0383
n: 170
missing: 0
uncensored: 58
Relevant Pairs: 13252
Concordant: 11576
Uncertain: 15470
cstatCI:
pander::pander(riskAnalysis$ROCAnalysis$aucs)
pander::pander(riskAnalysis$cenAUC)
0.928
pander::pander(riskAnalysis$ROCAnalysis$ClassMetrics)
accci:
senci:
speci:
aucci:
berci:
preci:
F1ci:
pander::pander(riskAnalysis$surdif)
Call: survival::Surv(eTime, eStatus) ~ class Chisq = 83.430643
on 2 degrees of freedom, p = 0.000000
| class=0 |
88 |
5 |
35.87 |
26.57 |
71.78 |
| class=1 |
23 |
11 |
7.65 |
1.46 |
1.69 |
| class=2 |
59 |
42 |
14.47 |
52.37 |
72.24 |
MCI to Dementia
table
clusterFeatures <- fc$names
tableMCI_to_Dem <- sm$coefficients[clusterFeatures,
c("Estimate",
"lower",
"HR",
"upper",
"full.AUC",
"Delta.AUC",
"z.IDI",
"Frequency")]
nugget <- fc$membership
names(nugget) <- clusterFeatures
tableMCI_to_Dem$Cluster <- nugget[rownames(tableMCI_to_Dem)]
rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()
for (ddet in c(1:length(rnames)))
{
description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames
tableMCI_to_Dem$Description <- description[rownames(tableMCI_to_Dem)]
pander::pander(tableMCI_to_Dem)
| FAQ |
2.46e-01 |
1.273 |
1.581 |
1.963 |
0.800 |
0.032788 |
4.22 |
1.00 |
1 |
NA |
| RAVLT_immediate |
-3.44e-01 |
0.400 |
0.527 |
0.695 |
0.800 |
0.013008 |
5.36 |
1.00 |
1 |
NA |
| ABETA |
-2.08e-01 |
0.541 |
0.679 |
0.853 |
0.800 |
-0.007637 |
3.76 |
1.00 |
1 |
NA |
| M_ST56SA |
-2.16e-01 |
0.586 |
0.693 |
0.819 |
0.797 |
0.008198 |
4.31 |
1.00 |
1 |
Surface Area of LeftSuperiorFrontal |
| ADAS13 |
1.24e-01 |
1.130 |
1.501 |
1.993 |
0.808 |
-0.000754 |
2.44 |
0.90 |
1 |
NA |
| PTAU |
1.38e-02 |
1.165 |
1.399 |
1.680 |
0.798 |
0.007735 |
3.44 |
0.90 |
1 |
NA |
| TAU |
3.14e-01 |
1.224 |
1.465 |
1.753 |
0.793 |
0.010720 |
4.37 |
0.80 |
2 |
NA |
| M_ST13TA |
-2.04e-01 |
0.572 |
0.659 |
0.760 |
0.794 |
0.027437 |
5.44 |
0.75 |
1 |
Cortical Thickness Average of LeftBankssts |
| ADAS11 |
1.91e-01 |
1.463 |
1.789 |
2.189 |
0.782 |
0.025417 |
5.96 |
0.65 |
2 |
NA |
| RD_ST34CV |
-8.86e-02 |
0.683 |
0.779 |
0.888 |
0.806 |
0.020088 |
3.90 |
0.65 |
1 |
Volume (Cortical Parcellation) of
LeftIsthmusCingulate |
| RD_ST49SA |
-8.66e-02 |
0.699 |
0.804 |
0.925 |
0.800 |
0.007946 |
2.95 |
0.65 |
1 |
Surface Area of LeftPostcentral |
| M_ST29SV |
-1.17e-01 |
0.500 |
0.643 |
0.826 |
0.782 |
0.005547 |
3.69 |
0.60 |
2 |
Volume (WM Parcellation) of LeftHippocampus |
| APOE4 |
3.15e-01 |
1.357 |
2.063 |
3.136 |
0.777 |
0.011835 |
3.41 |
0.60 |
2 |
NA |
| M_ST56CV |
-2.26e-02 |
0.694 |
0.782 |
0.881 |
0.775 |
0.007591 |
2.79 |
0.55 |
2 |
Volume (Cortical Parcellation) of
LeftSuperiorFrontal |
| M_ST11SV |
-1.56e-01 |
0.625 |
0.736 |
0.868 |
0.784 |
0.013446 |
3.66 |
0.45 |
2 |
Volume (WM Parcellation) of LeftAccumbensArea |
| M_ST14TS |
5.94e-02 |
1.094 |
1.252 |
1.433 |
0.782 |
0.007519 |
3.07 |
0.40 |
2 |
Cortical Thickness Standard Deviation of
LeftCaudalAnteriorCingulate |
| RD_ST34SA |
-1.02e-01 |
0.619 |
0.750 |
0.911 |
0.780 |
0.016271 |
2.80 |
0.35 |
2 |
Surface Area of LeftIsthmusCingulate |
| M_ST59SA |
-8.52e-02 |
0.645 |
0.754 |
0.883 |
0.782 |
-0.000775 |
3.96 |
0.30 |
2 |
Surface Area of LeftSupramarginal |
| RAVLT_perc_forgetting |
7.07e-02 |
1.224 |
1.684 |
2.319 |
0.762 |
0.012586 |
3.85 |
0.25 |
2 |
NA |
| M_ST24CV |
-1.02e-01 |
0.557 |
0.689 |
0.852 |
0.784 |
0.010169 |
3.50 |
0.15 |
2 |
Volume (Cortical Parcellation) of LeftEntorhinal |
| M_ST13CV |
-4.86e-13 |
0.682 |
0.786 |
0.907 |
0.787 |
-0.006338 |
3.28 |
0.15 |
1 |
Volume (Cortical Parcellation) of LeftBankssts |
| MMSE |
-3.99e-02 |
0.610 |
0.745 |
0.911 |
0.762 |
0.019400 |
2.76 |
0.10 |
3 |
NA |
| M_ST12SV |
-3.66e-02 |
0.581 |
0.711 |
0.869 |
0.762 |
0.022628 |
3.58 |
0.10 |
4 |
Volume (WM Parcellation) of LeftAmygdala |
| RD_ST15TS |
-5.97e-02 |
0.661 |
0.773 |
0.903 |
0.790 |
0.008388 |
3.36 |
0.10 |
5 |
Cortical Thickness Standard Deviation of
LeftCaudalMiddleFrontal |
| M_ST26CV |
-1.95e-13 |
0.620 |
0.749 |
0.905 |
0.755 |
-0.017097 |
2.99 |
0.05 |
6 |
Volume (Cortical Parcellation) of LeftFusiform |
| M_ST39CV |
-9.17e-14 |
0.814 |
0.873 |
0.936 |
0.794 |
0.011278 |
3.83 |
0.05 |
7 |
Volume (Cortical Parcellation) of
LeftMedialOrbitofrontal |
| M_ST59CV |
-1.68e-13 |
0.693 |
0.780 |
0.876 |
0.792 |
0.013338 |
4.16 |
0.05 |
8 |
Volume (Cortical Parcellation) of
LeftSupramarginal |
| M_ST39SA |
-4.15e-14 |
0.904 |
0.940 |
0.978 |
0.783 |
0.007519 |
3.10 |
0.05 |
9 |
Surface Area of LeftMedialOrbitofrontal |
Heat map
hm <- heatMaps(Outcome="status",data=TADPOLECrossMRI[,c("status",clusterFeatures)],title="Heat Map",Scale=TRUE,
theFiveColors=c("black","red","orange","yellow","white"),
# theFiveColors=c("darkred","red","yellow","blue","darkblue"),
hCluster="col",
cexRow=0.50,cexCol=0.65,srtCol=35,
ylab="Subjects",
xlab="Features"
)

Saving the
enviroment
save.image("./TADPOLE_BSWIMS_Results.RData")